package fun

import (
	"net"
	"net/url"
)

// @title: 获取URL主域名
// @param: string
// @return: string
// @description:
// @date: 2024/6/11 22:32
func UrlDomain(link string) string {
	if link == "" {
		return ""
	}
	r, err := url.Parse(link)
	if err != nil {
		return ""
	}

	domain := r.Hostname()
	if domain != "" {
		domain = StrToLower(domain)
		domain = StrReplace(domain, "www.", "")
	}

	return domain
}

// @title: 获取服务器端IP
// @param:
// @return: string
// @description:
// @date: 2024/6/11 22:32
func ServeIp() (ip string) {
	addrs, err := net.InterfaceAddrs()
	if err != nil {
		return ""
	}
	for _, addr := range addrs {
		ipAddr, ok := addr.(*net.IPNet)
		if !ok {
			continue
		}
		if ipAddr.IP.IsLoopback() {
			continue
		}
		if !ipAddr.IP.IsGlobalUnicast() {
			continue
		}
		return ipAddr.IP.String()
	}
	return ""

}
